namespace RBAC.Read.Api.Application.Command.DataBashboard
{
    using MediatR;
    using RBAC.ErrorCode;
    using RBAC.Read.Api.Application.Dto.DataBashboard;

    /// <summary>
    /// 看板任务 分页查询 命令
    /// </summary>
    public class GetKanbanTasksPageCommand : IRequest<APIPaging<KanbanTasksListDto>>
    {
        /// <summary>
        /// 页码，默认第1页
        /// </summary>
        public int PageIndex { get; set; } = 1;

        /// <summary>
        /// 每页数量，默认10条
        /// </summary>
        public int PageSize { get; set; } = 10;

        /// <summary>
        /// 工单编号（模糊查询）
        /// </summary>
        public string? WorkOrderNo { get; set; }

        /// <summary>
        /// 状态（精确匹配，如：未开始、进行中、已完成）
        /// </summary>
        public string? Status { get; set; }

        /// <summary>
        /// 产品编号（模糊查询）
        /// </summary>
        public string? ProductNo { get; set; }

        /// <summary>
        /// 产品名称（模糊查询）
        /// </summary>
        public string? ProductName { get; set; }

        /// <summary>
        /// 工序名称（模糊查询）
        /// </summary>
        public string? OperationName { get; set; }

        /// <summary>
        /// 开始时间（包含）
        /// </summary>
        public DateTime? StartDate { get; set; }

        /// <summary>
        /// 结束时间（包含）
        /// </summary>
        public DateTime? EndDate { get; set; }

        /// <summary>
        /// 排序，默认按 Id 倒序
        /// </summary>
        public string OrderBy { get; set; } = "Id DESC";
    }
}
